package com.zhihuishu.micro.course.openapi.course;

import com.zhihuishu.micro.course.openapi.course.dto.CCDataDto;
import com.zhihuishu.micro.course.openapi.course.dto.CCDataFolderMapDto;
import com.zhihuishu.micro.course.openapi.course.dto.CCDataMovieDto;
import com.zhihuishu.remote.RemoteException;
import com.zhihuishu.remote.RemoteResult;

import java.util.List;

/**
 * 文件
 */
public interface CCDataOpenService {
    RemoteResult<CCDataDto> createByDto(CCDataDto dto, long createUserId) throws RemoteException;

    RemoteResult<Void> deleteById(Integer dtoId, long deleteUserId) throws RemoteException;
    RemoteResult<Void> deleteByIds(List<Integer> dtoIds, long deleteUserId) throws RemoteException;

    RemoteResult<Void> updateByDto(CCDataDto dto, long updateUserId) throws RemoteException;
    RemoteResult<CCDataDto> updateAndGetByDto(CCDataDto dto, long updateUserId) throws RemoteException;
    RemoteResult<List<CCDataDto>> updateByDtoList(List<CCDataDto> dtoList, long updateUserId) throws RemoteException ;

    RemoteResult<List<CCDataDto>> queryListByFolderId(long folderId) throws RemoteException;


    RemoteResult<CCDataFolderMapDto> queryMapByFolderId(List<Long> folderId) throws RemoteException;

    /**
     *
     * @param courseId
     * @return
     * @throws RemoteException
     */
    RemoteResult<List<CCDataMovieDto>> listMovieData(long courseId) throws RemoteException;

}
